home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 98 / Skunkware 98.iso / osr5 / shells / bash-2.02 / usr / local / bin / bashbug < prev   
Encoding:
Text File  |  1998-07-12  |  3.1 KB  |  144 lines

  1. #!/bin/sh -
  2. #
  3. # bashbug - create a bug report and mail it to the bug address
  4. #
  5. # The bug address depends on the release status of the shell.  Versions
  6. # with status `alpha' or `beta' mail bug reports to chet@po.cwru.edu.
  7. # Other versions send mail to bug-bash@gnu.org.
  8. #
  9. # configuration section:
  10. #    these variables are filled in by the make target in cpp-Makefile
  11. #
  12. MACHINE="i586"
  13. OS="sco3.2v5.0.4"
  14. CC="cc -belf"
  15. CFLAGS=" -DPROGRAM='bash' -DHOSTTYPE='i586' -DOSTYPE='sco3.2v5.0.4' -DMACHTYPE='i586-pc-sco3.2v5.0.4' -DSHELL  -DHAVE_CONFIG_H -DWAITPID_BROKEN -DNO_MEMSCRAMBLE -DPATH_MAX=1024  -I. -I. -I./lib -O3 -s -Kalloca"
  16. RELEASE="2.02"
  17. PATCHLEVEL="0"
  18. RELSTATUS="release"
  19. MACHTYPE="i586-pc-sco3.2v5.0.4"
  20.  
  21. PATH=/bin:/usr/bin:/usr/local/bin:$PATH
  22. export PATH
  23.  
  24. TEMP=/tmp/bbug.$$
  25.  
  26. # Figure out how to echo a string without a trailing newline
  27. N=`echo 'hi there\c'`
  28. case "$N" in
  29. *c)    n=-n c= ;;
  30. *)    n= c='\c' ;;
  31. esac
  32.  
  33. BASHTESTERS="bash-testers@po.cwru.edu"
  34.  
  35. case "$RELSTATUS" in
  36. alpha*|beta*)    BUGBASH=chet@po.cwru.edu ;;
  37. *)        BUGBASH=bug-bash@gnu.org ;;
  38. esac
  39.  
  40. case "$RELSTATUS" in
  41. alpha*|beta*)    echo "$0: This is a testing release.  Would you like your bug report"
  42.         echo "$0: to be sent to the bash-testers mailing list?"
  43.         echo $n "$0: Send to bash-testers? $c"
  44.         read ans
  45.         case "$ans" in
  46.         y*|Y*)    BUGBASH="${BUGBASH},${BASHTESTERS}" ;;
  47.         esac ;;
  48. esac
  49.  
  50. BUGADDR="${1-$BUGBASH}"
  51.  
  52. : ${EDITOR=emacs}
  53.  
  54. : ${USER=${LOGNAME-`whoami`}}
  55.  
  56. trap 'rm -f $TEMP $TEMP.x; exit 1' 1 2 3 13 15
  57. trap 'rm -f $TEMP $TEMP.x' 0
  58.  
  59. UN=
  60. if (uname) >/dev/null 2>&1; then
  61.     UN=`uname -a`
  62. fi
  63.  
  64. if [ -f /usr/lib/sendmail ] ; then
  65.     RMAIL="/usr/lib/sendmail"
  66. elif [ -f /usr/sbin/sendmail ] ; then
  67.     RMAIL="/usr/sbin/sendmail"
  68. else
  69.     RMAIL=rmail
  70. fi
  71.  
  72. # this is raceable
  73. rm -f $TEMP
  74.  
  75. cat > $TEMP <<EOF
  76. From: ${USER}
  77. To: ${BUGADDR}
  78. Subject: [50 character or so descriptive subject here (for reference)]
  79.  
  80. Configuration Information [Automatically generated, do not change]:
  81. Machine: $MACHINE
  82. OS: $OS
  83. Compiler: $CC
  84. Compilation CFLAGS: $CFLAGS
  85. uname output: $UN
  86. Machine Type: $MACHTYPE
  87.  
  88. Bash Version: $RELEASE
  89. Patch Level: $PATCHLEVEL
  90. Release Status: $RELSTATUS
  91.  
  92. Description:
  93.     [Detailed description of the problem, suggestion, or complaint.]
  94.  
  95. Repeat-By:
  96.     [Describe the sequence of events that causes the problem
  97.     to occur.]
  98.  
  99. Fix:
  100.     [Description of how to fix the problem.  If you don't know a
  101.     fix for the problem, don't include this section.]
  102. EOF
  103.  
  104. # this is still raceable
  105. rm -f $TEMP.x
  106. cp $TEMP $TEMP.x
  107. chmod u+w $TEMP
  108.  
  109. trap '' 2        # ignore interrupts while in editor
  110.  
  111. until $EDITOR $TEMP; do
  112.     echo "$0: editor \`$EDITOR' exited with nonzero status."
  113.     echo "$0: Perhaps it was interrupted."
  114.     echo "$0: Type \`y' to give up, and lose your bug report;"
  115.     echo "$0: type \`n' to re-enter the editor."
  116.     echo $n "$0: Do you want to give up? $c"
  117.  
  118.     read ans
  119.     case "$ans" in
  120.     [Yy]*) exit 1 ;;
  121.     esac
  122. done
  123.  
  124. trap 'rm -f $TEMP $TEMP.x; exit 1' 2    # restore trap on SIGINT
  125.  
  126. if cmp -s $TEMP $TEMP.x
  127. then
  128.     echo "File not changed, no bug report submitted."
  129.     exit
  130. fi
  131.  
  132. echo $n "Send bug report? [y/n] $c"
  133. read ans
  134. case "$ans" in
  135. [Nn]*)    exit 0 ;;
  136. esac
  137.  
  138. ${RMAIL} $BUGADDR < $TEMP || {
  139.     cat $TEMP >> $HOME/dead.bashbug
  140.     echo "$0: mail failed: report saved in $HOME/dead.bashbug" >&2
  141. }
  142.  
  143. exit 0
  144.